/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/idenger">idenger</a> All rights reserved.
 */
package com.idenger.modules.edu.entity.course;

import org.hibernate.validator.constraints.Length;


import java.util.*;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.idenger.common.persistence.DataEntity;
import com.idenger.modules.edu.entity.teacher.EduTeacherInfo;
import com.idenger.modules.edu.entity.user.EduUser;

/**
 * 课程Entity
 * @author chenlin
 * @version 2017-11-29
 */
public class EduCourse extends DataEntity<EduCourse> {
	
	private static final long serialVersionUID = 1L;
	private String name;		// 课程名字
	private String iconImage;		// 封面
	private String courseType;		// 课程类型
	private String price;		// 价格
	private String status;		// 状态 1已发布  0未发布
	private String open;		// 是否公开		公开1	不公开0
	private String boutiqueCourse;		// 是否是精品课程
	private String startPeriod;		// 学时
	private String score;		// 学分
	private String openWechat;		// 微信端展示
	private String courseIntroduce;		// 课程介绍
	private Date studyBeginTime;		// 学习时间
	private Date studyEndTime;		// 学习时间
	private String sumScore;		// 总分值
	private String videoScore;		// 视频分值
	private String practiceScore;		// 练习分值
	private String preferentialPrice;//优惠价
	private String showPc;//pc端展示
	private String haveNeedApplicationTable;//是否需要报名表
	private String haveNeedInvoice;//是否需要发票
	private String wechatHot;//微信热门
	
	
	private String endStatus;
	
	private String coursePayStatus;
	
	private Date enrollDate;
	//private List<EduCourseTeacher> eduCourseTeacher;//课程教师表
	
	private List<EduTeacherInfo> eduTeacher;
	
	private EduUser eduUser;
	


	public String getShowPc() {
		return showPc;
	}

	public void setShowPc(String showPc) {
		this.showPc = showPc;
	}

	public List<EduTeacherInfo> getEduTeacher() {
		return eduTeacher;
	}

	public void setEduTeacher(List<EduTeacherInfo> eduTeacher) {
		this.eduTeacher = eduTeacher;
	}

	/*public List<EduCourseTeacher> getEduCourseTeacher() {
		return eduCourseTeacher;
	}

	public void setEduCourseTeacher(List<EduCourseTeacher> eduCourseTeacher) {
		this.eduCourseTeacher = eduCourseTeacher;
	}*/

	public EduCourse() {
		super();
	}

	public String getPreferentialPrice() {
		return preferentialPrice;
	}



	public void setPreferentialPrice(String preferentialPrice) {
		this.preferentialPrice = preferentialPrice;
	}



	public String getHaveNeedApplicationTable() {
		return haveNeedApplicationTable;
	}



	public void setHaveNeedApplicationTable(String haveNeedApplicationTable) {
		this.haveNeedApplicationTable = haveNeedApplicationTable;
	}



	public String getHaveNeedInvoice() {
		return haveNeedInvoice;
	}



	public void setHaveNeedInvoice(String haveNeedInvoice) {
		this.haveNeedInvoice = haveNeedInvoice;
	}



	public String getWechatHot() {
		return wechatHot;
	}



	public void setWechatHot(String wechatHot) {
		this.wechatHot = wechatHot;
	}



	public EduCourse(String id){
		super(id);
	}

	@Length(min=0, max=64, message="课程名字长度必须介于 0 和 64 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
	public String getIconImage() {
		return iconImage;
	}

	public void setIconImage(String iconImage) {
		this.iconImage = iconImage;
	}
	
	@Length(min=0, max=64, message="课程类型长度必须介于 0 和 64 之间")
	public String getCourseType() {
		return courseType;
	}

	public void setCourseType(String courseType) {
		this.courseType = courseType;
	}
	
	@Length(min=0, max=64, message="价格长度必须介于 0 和 64 之间")
	public String getPrice() {
		return price;
	}

	public void setPrice(String price) {
		this.price = price;
	}
	
	@Length(min=0, max=10, message="状态长度必须介于 0 和 10 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@Length(min=0, max=10, message="是否公开长度必须介于 0 和 10 之间")
	public String getOpen() {
		return open;
	}

	public void setOpen(String open) {
		this.open = open;
	}
	
	@Length(min=0, max=10, message="是否是精品课程长度必须介于 0 和 10 之间")
	public String getBoutiqueCourse() {
		return boutiqueCourse;
	}

	public void setBoutiqueCourse(String boutiqueCourse) {
		this.boutiqueCourse = boutiqueCourse;
	}
	
	@Length(min=0, max=64, message="学时长度必须介于 0 和 64 之间")
	public String getStartPeriod() {
		return startPeriod;
	}

	public void setStartPeriod(String startPeriod) {
		this.startPeriod = startPeriod;
	}
	
	@Length(min=0, max=10, message="学分长度必须介于 0 和 10 之间")
	public String getScore() {
		return score;
	}

	public void setScore(String score) {
		this.score = score;
	}
	
	@Length(min=0, max=10, message="微信端展示长度必须介于 0 和 10 之间")
	public String getOpenWechat() {
		return openWechat;
	}

	public void setOpenWechat(String openWechat) {
		this.openWechat = openWechat;
	}
	
	public String getCourseIntroduce() {
		return courseIntroduce;
	}

	public void setCourseIntroduce(String courseIntroduce) {
		this.courseIntroduce = courseIntroduce;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStudyBeginTime() {
		return studyBeginTime;
	}

	public void setStudyBeginTime(Date studyBeginTime) {
		this.studyBeginTime = studyBeginTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStudyEndTime() {
		return studyEndTime;
	}

	public void setStudyEndTime(Date studyEndTime) {
		this.studyEndTime = studyEndTime;
	}
	
	@Length(min=0, max=10, message="总分值长度必须介于 0 和 10 之间")
	public String getSumScore() {
		return sumScore;
	}

	public void setSumScore(String sumScore) {
		this.sumScore = sumScore;
	}
	
	@Length(min=0, max=10, message="视频分值长度必须介于 0 和 10 之间")
	public String getVideoScore() {
		return videoScore;
	}

	public void setVideoScore(String videoScore) {
		this.videoScore = videoScore;
	}
	
	@Length(min=0, max=10, message="练习分值长度必须介于 0 和 10 之间")
	public String getPracticeScore() {
		return practiceScore;
	}

	public void setPracticeScore(String practiceScore) {
		this.practiceScore = practiceScore;
	}

	public EduUser getEduUser() {
		return eduUser;
	}

	public void setEduUser(EduUser eduUser) {
		this.eduUser = eduUser;
	}

	public String getCoursePayStatus() {
		return coursePayStatus;
	}

	public void setCoursePayStatus(String coursePayStatus) {
		this.coursePayStatus = coursePayStatus;
	}

	public String getEndStatus() {
		return endStatus;
	}

	public void setEndStatus(String endStatus) {
		this.endStatus = endStatus;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	public Date getEnrollDate() {
		return enrollDate;
	}

	public void setEnrollDate(Date enrollDate) {
		this.enrollDate = enrollDate;
	}
	
	
	
	
}